/*
 * @Author: your name
 * @Date: 2021-02-16 12:40:22
 * @LastEditTime: 2021-02-18 20:00:22
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \demo_2021021601\driver\at32F4xx\bsp_led.c
 */
/*
*********************************************************************************************************
*
*	模块名称 : LED指示灯驱动模块
*	文件名称 : bsp_led.c
*	版    本 : v1.0.00
*	说    明 : 驱动LED指示灯
*
*********************************************************************************************************
*/

#include "bsp.h"

/* 驱动引脚定义 */
#define LED_PORT GPIOB
#define LED_PIN GPIO_Pins_0
#define LED_GPIO_RCC_CLK RCC_AHBPERIPH_GPIOB

/*
*********************************************************************************************************
*	函 数 名: bsp_InitLed
*	功能说明: 配置LED指示灯相关的GPIO
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_InitLed(void)
{
    GPIO_InitType GPIO_InitStructure;

    /* GPIO Ports Clock Enable */
    RCC_AHBPeriphClockCmd(LED_GPIO_RCC_CLK, ENABLE);

    /*Configure the LED pin as ouput push-pull*/
    GPIO_StructInit(&GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pins = LED_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OutType = GPIO_OutType_PP;
    GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;
    GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;
    GPIO_Init(LED_PORT, &GPIO_InitStructure);
    //led on
    LED_PORT->BSRE = LED_PIN;
}

/*
*********************************************************************************************************
*	函 数 名: bsp_LedOn
*	功能说明: 点亮LED指示灯。
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_LedOn(void)
{
    LED_PORT->BRE = LED_PIN;
}

/*
*********************************************************************************************************
*	函 数 名: bsp_LedOff
*	功能说明: 熄灭LED指示灯。
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_LedOff(void)
{
    LED_PORT->BSRE = LED_PIN;
}

/*
*********************************************************************************************************
*	函 数 名: bsp_LedToggle
*	功能说明: 翻转LED指示灯。
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_LedToggle(void)
{
    LED_PORT->OPTDT ^= LED_PIN;
}

/********************************************* End of file **********************************************/
